การใช้ AMI เพื่อ Copy ข้อมูลของ EC2 Instance
สวัสดีครับ ผม ต้า ครับ
นี่เป็นบทความแรกที่ผมจะเขียนเกี่ยวกับ AWS ครับ
ครั้งนี้ผมจะมาแนะนำเกี่ยวกับฟังก์ชันของ EC2 ที่มีชื่อว่า AMI ว่าใช้ทำอะไรและมีขั้นตอนในการติดตั้งใช้งานอย่างไรครับ
AMI
AMI (Amazon Machine Images) คือ ฟังก์ชั่นบันทึกการตั้งค่าต่างๆของ EC2 Instance ในรูปแบบของ Image
(เช่น OS หรือ การตั้งค่าด้านใน) เพื่อในการสร้าง EC2 Instance ครั้งต่อไป เราสามารถนำการตั้งค่าที่ถูกบันทึกมาเป็น template ได้
1. สร้าง EC2 Instance
ก่อนอื่นที่เราจะสร้าง AMI ไว้ใช้สำหรับการเก็บการตั้งค่าของ Instance เราจำเป็นต้องมี Instance ก่อน
ในขั้นตอนนี้เราจะมาสร้าง Instance กัน โดยสามารถดูวิธีสร้างได้จากบทความด้านล่างนี้เลยครับ
ทำตั้งแต่หัวข้อแรกจนถึงหัวข้อสุดท้ายเลยครับ
【Update】วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY
โดยในครั้งนี้ผมได้ทำการตั้งค่า Instance ไว้ดังนี้ครับ
Name: supanut-test-ec2
OS: Amazon Linux 2 Kernel 5.10 AMI
Instance Type: t3a.nano
Key pair: supanut-test-ec2.ppk
Network settings(Security Group):supanut-test-ec2
ssh
My IP
Configure storage(EBS Size): 8
2. เชื่อมต่อ PuTTY
หลังจากที่เราทำตามบทความการสร้าง EC2 Instance
คราวนี้เราจะมาเปลี่ยน Time zone จาก UTC -> Bangkok เพื่อพิสูจน์ในขั้นต่อไปว่า
การตั้งค่านี้ที่เราทำจะถูกบันทึกเมื่อเราใช้ AMI สร้าง Instance อีกตัว
ก่อนอื่นให้เราเชื่อมต่อ PuTTY ตามบทความด้านล่างนี้ทุกอย่างเลย
วิธีเชื่อมต่อ PuTTY
【Update】วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY
จากนั้นใช้คำสั่งนี้
date
จะสังเกตเห็นว่า Time zone ค่าเริ่มต้นที่แสดงอยู่เป็น UTC
ดังนั้นเราจะใช้คำสั่งต่อไปนี้เพื่อเปลี่ยน Time zone เป็นของประเทศไทย
ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
แล้วใช้คำสั่งdate
อีกทีเพื่อดู time zone
date
จะสังเกตเห็นว่าเวลา time zone เป็น+07
แล้ว
3. สร้าง AMI
หลังจากที่เราปรับ Time zone แล้วให้กลับมาหน้า EC2 Instance
แล้วกดตามนี้
1. เลือก✅ Instance ที่เราต้องการสร้างAMI
2. กดActions
3. เลือกImage and templates
4. เลือกCreate image
แล้วตั้งชื่อ Image name โดยครั้งนี้ผมจะตั้งชื่อว่าsupanut-test-ami
เลื่อนลงมาด้านล่างจะเห็นปุ่มAdd tag
ให้เรากดตามรูป
1. กดAdd tag
2. ใส่คำว่าName
ในช่อง Key
3. ใส่ชื่อที่เราต้องการ ในช่อง Value-optional(ชื่อในส่วนนี้จะไปแสดงอยู่ในช่อง Name หน้า AMIs)
หลังจากนั้นกดCreate Image
ที่บริเวณขวาล่าง
4.ใช้ AMI สร้าง Copy ของ Instance
ให้เราไปที่ฟังก์ชัน Image > AMIs
จะเห็นว่าเราจะได้ AMI ที่ชื่อsupanut-test-ami
ให้เรารอจนกว่า Status จะเปลี่ยนจากPending
เป็นAvailable
แล้วคลิก
1. เลือก✅ AMI ที่เราจะใช้สร้าง Copy ของ Instance โดยในที่นี้คือsupanut-test-ami
2. กดLaunch instance from AMI
จะเห็นได้ว่าเรามาอยู่หน้าLaunch an instance
โดยในการสร้าง Instance ครั้งนี้ไม่สามารถเปลี่ยน Application and OS Images (Amazon Machine Image) ได้
เพราะว่านี่เป็นการ Copy การตั้งค่าของ Instance ตัวก่อนหน้านี้
แต่ว่านอกจากการเปลี่ยน OS แล้ว เราสามารถปรับเปลี่ยนการตั้งค่าอย่างอื่นให้เหมือนหรือแตกต่างจากเดิมได้
โดยในครั้งนี้ผมจะตั้งค่าตามนี้ครับ
Name:supanut-test-ec2-copy
Instance Type:t3a.micro
Key pair:supanut-test-ec2.ppk
Network settings(Security Group):supanut-test-ec2-copy
ssh
My IP
Configure storage(EBS Size): 8
เมื่อเรากรอกข้อมูลเสร็จแล้วให้กดLaunch instance
ได้เลยครับ
Tips!!
ในกรณีที่เราทำ Key pair หาย
เราสามารถใช้วิธีนี้ในการสร้างตัว Copy Instance ที่เราทำ key pair หาย แล้วเปลี่ยน key pair อันใหม่ได้
5.ตรวจสอบการ Copy
ในขั้นตอนนี้เราจะมาตรวจสอบว่า instance ตัวใหม่ที่เราสร้างขึ้นได้ Copy การตั้งค่าจากตัวที่แล้วจริงไหมนะครับ
ก่อนอื่นให้เรา CopyPublic IPv4 address
ของ instance ตัวใหม่ที่สร้างขึ้นซึ่งในกรณีของผมคือsupanut-test-ec2-copy
แล้วนำไปเปิดในPuTTY
นะครับ
จากนั้นใช้คำสั่งdate
เพื่อตรวจสอบ Time zone นะครับ
date
จากสังเกตเห็นว่า Time zone ที่แสดงอยู่เป็น+07
เพราะว่า Instance ตัวนี้ได้ก๊อปปี้การตั้งค่ามาจาก Instance ตัวแรกแล้วนั่นเองนะครับ
เพิ่มเติมเกี่ยวกับ AMI
ทุกครั้งที่เราสร้าง AMI เราจะได้ Snapshot ด้วย
โดยสังเกตได้จาก ฟังก์ชัน Elastic Block Store -> Snapshots นะครับ
อธิบายเกี่ยวกับ Snapshot
Snapshot คือ template เก็บข้อมูลของ instance ชนิดนึงซึ่งมีความแตกต่างกับ AMI
AMI คือการเปลี่ยนรูปแบบ Instance ให้กลายเป็น Image โดยในนี้จะมี Snapshot อยู่ (จะสังเกตเห็นว่า AMI ย่อมาจาก Amazon Machine Images)
Snapshot คือการเปลี่ยนรูปแบบ EBS ให้กลายเป็น Image (เป็นการเก็บ Image แค่ในส่วนของ Storage)
6.การลบ AMIs และ Snapshots
สำหรับการลบ AMI เราสามารถทำได้ตามนี้ครับ
1. เลือก✅ AMI ที่เราต้องการลบ
2. กดActions
3. เลือกDeregister AMI
4. กดปุ่มสีส้มDeregister AMI
เพื่อยืนยัน
สำหรับการลบ Snapshot เราสามารถทำได้ตามนี้ครับ
1. เลือก✅ Snapshot ที่เราต้องการลบ
2. กดActions
3. เลือกDelete snapshot
4. กดปุ่มสีส้มDelete
เพื่อยืนยัน
และนอกจากการลยสิ่งเหล่านี้
ผมแนะนำให้ลบ AWS Resource ที่สร้างขึ้นในบทความนี้ด้วยครับ
(EC2 Instacen、Securyty Group、KeyPair)
สรุป
AMI เป็นการเก็บข้อมูลการตั้งค่าของ Instance ซึ่งมีประโยชน์อย่างมากในกรณีที่เราใช้เวลาในการตั้งค่านาน
แล้วเราอยากที่จะสร้าง Instance ที่มีการตั้งค่าเหมือนกัน เราสามารถใช้ AMI ก๊อปปี้การตั้งค่าได้ทันที และยังใช้สำหรับการ Backup EC2 Instance ได้อีกด้วย
บทความที่เกี่ยวข้อง
・
【Update】วิธีติดตั้ง Amazon Linux บน EC2 และเชื่อมต่อเซิร์ฟเวอร์ด้วยโปรแกรม PuTTY
・
วิธีตั้งค่า Time Zone ใน Amazon Linux 2 ของ EC2
・
วิธีสร้าง Snapshot EC2 แบบ On-demand ด้วย AWS Backup
・
EC2 AMI Official Documents
・
EC2 Instances and AMIs Official Documents